import { getToken } from '@utils'
import axios from 'axios'
// 定义axios默认配置
axios.defaults.baseURL = process.env.NODE_ENV === 'development' ? '' : '接口真实上线的源'
axios.defaults.timeout = 8000

// 请求拦截
axios.interceptors.request.use(function (config) {
  if (getToken()) {
    config.headers.token = getToken()
  }
  return config
}, function (error) {
  return Promise.reject(error)
})

// 响应拦截
axios.interceptors.response.use(function (response) {
  // 判断token是否过期401(没有token) 403(token过期)
  const errCode = [401, 403]
  if (errCode.includes(response.data.code)) {
    // 弹出错误提醒 清除缓存 跳转到登录页
    this.$message.warning('登录状态失效，请重新登录', 1, () => {
      this.$router.push('/login')
      // 清除缓存
      localStorage.removeItem('token')
      localStorage.removeItem('useInfo')
    })
  }
  return response
}, function (error) {
  return Promise.reject(error)
})

export default axios
